package com.zky.gulimall.product;

import java.util.ArrayList;
import java.util.List;

/**
 * @Description TODO
 * @Author 张开源
 * @Date 2022/11/23 1:39
 * @Version 1.0
 **/
public abstract class Subject {
    protected List<Observer> observerList = new ArrayList<>();

    /**
     * 增加观察者
     *
     * @param observer 观察者
     */
    public void add(Observer observer) {
        observerList.add(observer);
    }

    /**
     * 注销观察者，从观察者集合中删除一个观察者
     *
     * @param observer 观察者
     */
    public void remove(Observer observer) {
        observerList.remove(observer);
    }

    /**
     * 通知观察者
     */
    public abstract void notifyObserver();

}
